A client device can request and access content from server(s) over a network, such as Web-related content via a Web browser application. A browser can forward a request for content over the network to a content source or content provider that then communicates the requested content to the client device. The received content is typically expressed in a markup language format, such as the Hyptertext Markup Language (HTML) format, the Dynamic HTML (DHTML) format, and the like. A tag-based hierarchical structure, such as HTML markup, identifies components in the content and identifies the manner in which the browser should present these components. Dynamic HTML supplements HTML by including information that also governs the behavior of the content, such as by specifying the behavior of a Web page when a user focuses on a link within the Web page. Typically, content authors specify that presentation and behavior using standard web technologies such as Cascading Style Sheets (CSS) and Document Object Model (DOM).
This type of content request and display solution works well for most client devices, such as personal computers, which receive markup content via the Internet. However, this solution does not provide an optimal solution for all types of computing-based client devices. For instance, smaller and/or portable client devices may have reduced resources, such as reduced memory and/or processor-related resources. Examples of such “resource-constrained” client devices include television-based set-top boxes, personal digital assistants (PDAs), mobile telephones, wearable computing devices (e.g., smart watches), and other portable and/or resource-constrained client devices. With such devices, it can be difficult or impossible to duplicate and/or implement the browser components used in a desktop computing environment to receive, process, and render content due to memory limitations, processor limitations, and/or any other resource limitations.
Nevertheless, the above described approach of communicating markup content to a computing-based client device has become entrenched in the industry, and attempts to address the problems of resource-constrained devices do not fundamentally alter this content delivery paradigm. For example, the markup content can be simplified before being communicated to a resource-constrained client device by specifying the content in a more restrictive language, such as XHTML which comprises a more restricted representation of the HTML language using XML. This potentially allows the client device to employ a browser that is correspondingly less complex and which consumes fewer resources compared to its desktop counterpart. However, the client device still operates under the traditional browser paradigm with a simplified browser to receive and render markup language content which is still resource intensive, albeit simplified.
As an alternative to developing content for presentation at a resource-constrained client device using HTML, other approaches can be utilized. For example, an electronic program guide downloaded to a television-based client device can include a list of television programs as well as other display items such as category headers, show times, channel numbers, and the like. To download and display the program guide at the television-based client device, the alternative approaches include writing custom code to display each item type and including the code in the downloaded assembly; including drawing instructions along with each data item in the downloaded data; creating a presentation containing only a portion of the data set, and generating a new page to display a next portion of the data set; or including a bitmap presentation of the data and/or presenting the data in a fixed appearance.
These alternative approaches to rendering content at a resource-constrained client device have various disadvantages. If custom code is written, then authoring content also requires programming. In addition, the writing of custom code to display the data requires not only programming knowledge, but also knowledge of the operating system, graphics libraries, downloaded data structures, and the like. As such, a designer cannot then change the presentation without changing the actual computer code. Including drawing instructions with each data item downloaded to a client device results in large data packages. Including a bitmap presentation of each data item can result in an even larger data set, and also restricts the ability to take advantage of such client-specific features as special color palettes and anti-aliasing of text. Presenting the data using a generic appearance may not allow for customizing the presentation beyond the mere specification of fonts, colors, and positions.
The alternative approaches to rendering content at a resource-constrained client device also preclude responsive updates of dynamic data displayed at the client device, such as a programming list of television programs in the electronic program guide in response to user interaction. In this example, the content provider has to receive the dynamic data update request, re-transcode all of the content to render the program guide with the updated list of television programs, and again communicate all of the content to the television-based client device.